using System;
using System.Collections.Generic;
using System.Drawing;

using Cosmos.Core;
using Cosmos.Debug.Kernel;

/*****************************************************************************
Sets VGA-compatible video modes without using the BIOS
 * http://bos.asmhackers.net/docs/vga_without_bios/
 * adapted from code by Chris Giese <geezer@execpc.com>	http://www.execpc.com/~geezer
 * by Stephen Remde
//*/

namespace Cosmos.HAL.Drivers.Video
{
    public class VGADriver
    {
        #region Properties

        public enum TextSize
        {
            Size40x25,
            Size40x50,
            Size80x25,
            Size80x50,
            Size90x30,
            Size90x60
        };

        public enum ScreenSize
        {
            /// <summary>
            /// 640x480 graphics mode  - 2 and 4 bit color depth available
            /// </summary>
            Size640x480,

            /// <summary>
            /// 720x480 graphics mode  - 16 bit color depth available
            /// </summary>
            Size720x480,

            /// <summary>
            /// 320x200 graphics mode  - 4 and 8 bit color depth available
            /// </summary>
            Size320x200
        };

        public enum ColorDepth
        {
            BitDepth2 = 2,
            BitDepth4 = 4,
            BitDepth8 = 8,
            BitDepth16 = 16
        };

        /// <summary>
        /// Get and set pixel width.
        /// </summary>
        public int PixelWidth { private set; get; }

        /// <summary>
        /// Get and set pixel height.
        /// </summary>
        public int PixelHeight { private set; get; }

        /// <summary>
        /// Get and set colors.
        /// </summary>
        public int Colors { private set; get; }

        private enum Mode { Text, Graphical }

        #endregion

        #region Methods

        //Get all the colors from the palette
        public void ReadPalette()
        {
            debugger.Send("Reading set palette");
            IOPort.Write16(DACIndex_Read, 0);
            for (int i = 0; i < 256; i++)
            {
                int red = IOPort.Read8(DAC_Data) << 2;
                int green = IOPort.Read8(DAC_Data) << 2;
                int blue = IOPort.Read8(DAC_Data) << 2;
                var argb = (red << 16) | (green << 8) | blue;
                palette[i] = Color.FromArgb(argb);
            }
        }

        public Color GetPaletteEntry(int aIndex)
        {
            return palette[aIndex];
        }

        public void SetPaletteEntry(int aIndex, Color aColor)
        {
            palette[aIndex] = aColor;
            SetPaletteEntry(aIndex, aColor.R, aColor.G, aColor.B);
        }

        /// <summary>
        /// Set palette entry.
        /// </summary>
        /// <param name="aIndex">Index.</param>
        /// <param name="aR">Red.</param>
        /// <param name="aG">Green.</param>
        /// <param name="aB">Blue.</param>
        public void SetPaletteEntry(int aIndex, byte aR, byte aG, byte aB)
        {
            palette[aIndex] = Color.FromArgb(aR, aG, aB);
            IOPort.Write8(DACIndex_Write, (byte)aIndex);
            IOPort.Write8(DAC_Data, (byte)(aR >> 2));
            IOPort.Write8(DAC_Data, (byte)(aG >> 2));
            IOPort.Write8(DAC_Data, (byte)(aB >> 2));
        }

        private void WriteVGARegisters(byte[] aRegisters)
        {
            int xIdx = 0;
            byte i;

            /* write MISCELLANEOUS reg */
            IOPort.Write8(MiscellaneousOutput_Write, aRegisters[xIdx++]);
            /* write SEQUENCER regs */
            for (i = 0; i < numSeqRegs; i++)
            {
                IOPort.Write8(Sequencer_Index, i);
                IOPort.Write8(Sequencer_Data, aRegisters[xIdx++]);
            }
            /* unlock CRTC registers */
            IOPort.Write8(CRTController_Index, 0x03);
            IOPort.Write8(CRTController_Data, (byte)(IOPort.Read8(CRTController_Data) | 0x80));
            IOPort.Write8(CRTController_Index, 0x11);
            IOPort.Write8(CRTController_Data, (byte)(IOPort.Read8(CRTController_Data) & 0x7F));

            /* make sure they remain unlocked */
            aRegisters[0x03] |= 0x80;
            aRegisters[0x11] &= 0x7f;

            /* write CRTC regs */
            for (i = 0; i < numCRTCRegs; i++)
            {
                IOPort.Write8(CRTController_Index, i);
                IOPort.Write8(CRTController_Data, aRegisters[xIdx++]);
            }
            /* write GRAPHICS CONTROLLER regs */
            for (i = 0; i < numGCRegs; i++)
            {
                IOPort.Write8(GraphicsController_Index, i);
                IOPort.Write8(GraphicsController_Data, aRegisters[xIdx++]);
            }
            /* write ATTRIBUTE CONTROLLER regs */
            for (i = 0; i < numACRegs; i++)
            {
                var _ = IOPort.Read8(Instat_Read);
                IOPort.Write8(AttributeController_Index, i);
                IOPort.Write8(AttributeController_Write, aRegisters[xIdx++]);
            }
            /* lock 16-color palette and unblank display */
            _ = IOPort.Read8(Instat_Read);
            IOPort.Write8(AttributeController_Index, 0x20);
            debugger.Send("Finished writing VGA registers");
        }

        /// <summary>
        /// Set plane.
        /// </summary>
        /// <param name="p">p to set.</param>
        private void SetPlane(byte aP)
        {
            aP &= 3;
            var pmask = (byte)(1 << aP);
            /* set read plane */
            IOPort.Write8(GraphicsController_Index, 4);
            IOPort.Write8(GraphicsController_Data, aP);
            /* set write plane */
            IOPort.Write8(Sequencer_Index, 2);
            IOPort.Write8(Sequencer_Data, pmask);
        }

        //int offset = 0xb8000;
        /// <summary>
        /// Get frame buffer segment.
        /// </summary>
        /// <returns>MemoryBlock08 value.</returns>
        /// <exception cref="Exception">Thrown when unable to determine memory segment.</exception>
        private MemoryBlock GetFramebufferSegment()
        {
            IOPort.Write8(GraphicsController_Index, 6);
            int seg = IOPort.Read8(GraphicsController_Data);
            debugger.Send($"VGA: raw seg value: {seg}");
            seg >>= 2;

            seg &= 3;
            return seg switch
            {
                0 or 1 => VGAMemoryBlock,
                2 => MonochromeTextMemoryBlock,
                3 => CGATextMemoryBlock,
                _ => throw new Exception("Unable to determine memory segment!"),
            };
        }

        /// <summary>
        /// Write font.
        /// </summary>
        /// <param name="font">Font.</param>
        /// <param name="font_height">Font height.</param>
        /// <exception cref="Exception">Thrown when unable to determine memory segment.</exception>
        public void WriteFont(byte[] aFont, byte aFontHeight)
        {
            /* save registers
                set_plane() modifies GC 4 and SEQ 2, so save them as well */
            IOPort.Write8(Sequencer_Index, 2);
            var seq2 = IOPort.Read8(Sequencer_Data);

            IOPort.Write8(Sequencer_Index, 4);
            var seq4 = IOPort.Read8(Sequencer_Data);

            /* turn off even-odd addressing (set flat addressing)
            assume: chain-4 addressing already off */
            IOPort.Write8(Sequencer_Data, (byte)(seq4 | 0x04));

            IOPort.Write8(GraphicsController_Index, 4);
            var gc4 = IOPort.Read8(GraphicsController_Data);

            IOPort.Write8(GraphicsController_Index, 5);
            var gc5 = IOPort.Read8(GraphicsController_Data);

            /* turn off even-odd addressing */
            IOPort.Write8(GraphicsController_Data, (byte)(gc5 & ~0x10));

            IOPort.Write8(GraphicsController_Index, 6);
            var gc6 = IOPort.Read8(GraphicsController_Data);

            /* turn off even-odd addressing */
            IOPort.Write8(GraphicsController_Data, (byte)(gc6 & ~0x02));

            /* write font to plane P4 */
            SetPlane(2);

            /* write font 0 */
            var seg = GetFramebufferSegment();


            for (uint i = 0; i < 256; i++)
            {
                for (uint j = 0; j < aFontHeight; j++)
                {
                    seg[i * 32 + j] = aFont[i * aFontHeight + j];
                }
            }

            /* restore registers */
            IOPort.Write8(Sequencer_Index, 2);
            IOPort.Write8(Sequencer_Data, seq2);
            IOPort.Write8(Sequencer_Index, 4);
            IOPort.Write8(Sequencer_Data, seq4);
            IOPort.Write8(GraphicsController_Index, 4);
            IOPort.Write8(GraphicsController_Data, gc4);
            IOPort.Write8(GraphicsController_Index, 5);
            IOPort.Write8(GraphicsController_Data, gc5);
            IOPort.Write8(GraphicsController_Index, 6);
            IOPort.Write8(GraphicsController_Data, gc6);
        }

        /// <summary>
        /// The closest color in the palette will be found to be drawn
        /// This is quite slow, so whenever possible use the index of the color
        /// </summary>
        /// <param name="aX"></param>
        /// <param name="aY"></param>
        /// <param name="aColor"></param>
        public void SetPixel(uint aX, uint aY, Color aColor)
        {
            //Find the closest index
            var index = GetClosestColorInPalette(aColor);

            //Draw
            SetPixel(aX, aY, index);
        }

        private static Dictionary<int, uint> colorToPalette = new Dictionary<int, uint>();
        public uint GetClosestColorInPalette(Color aColor)
        {
            if (colorToPalette.ContainsKey(aColor.ToArgb()))
            {
                return colorToPalette[aColor.ToArgb()];
            }

            uint index = 0;
            double diff = 1000000;
            for (uint i = 0; i < 2 << ((int)colorDepth - 1); i++) //iterate over the total palette
            {
                var paletteColor = palette[i];
                var colorDiff = (aColor.R - paletteColor.R) * (aColor.R - paletteColor.R) * 0.3 + //Taken from https://stackoverflow.com/questions/1847092/given-an-rgb-value-what-would-be-the-best-way-to-find-the-closest-match-in-the-d
                    (aColor.G - paletteColor.G) * (aColor.G - paletteColor.G) * 0.59 + (aColor.B - paletteColor.B) * (aColor.B - paletteColor.B) * 0.11;
                //mDebugger.Send($"Standard Color: {aColor.R} {aColor.G} {aColor.B} Comparing to: {paletteColor.R} {paletteColor.G} {paletteColor.B} Diff: {colorDiff}");
                if (colorDiff < diff)
                {
                    index = i;
                    diff = colorDiff;
                    if (diff == 0)
                    {
                        break;
                    }
                }
            }
            colorToPalette.Add(aColor.ToArgb(), index);
            //mDebugger.Send("Chosen index: " + index);

            return index;
        }

        /// <summary>
        ///
        /// </summary>
        /// <param name="aX"></param>
        /// <param name="aY"></param>
        /// <param name="aColor">The index of the color in the palette</param>
        public void SetPixel(uint aX, uint aY, uint aColor)
        {
            //Global.mDebugger.Send($"Setting pixel: ({x}, {y}) to {color}");
            if (mode == Mode.Text)
            {
                throw new Exception("Cannot set pixel in text mode");
            }
            switch (screenSize)
            {
                case ScreenSize.Size640x480:
                    switch (colorDepth)
                    {
                        case ColorDepth.BitDepth2:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth4:
                            SetPixel640x480x4(aX, aY, aColor);
                            break;
                        case ColorDepth.BitDepth8:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth16:
                            throw new NotImplementedException();
                        default:
                            throw new NotImplementedException();
                    }
                    break;
                case ScreenSize.Size720x480:
                    switch (colorDepth)
                    {
                        case ColorDepth.BitDepth2:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth4:
                            SetPixel720x480x4(aX, aY, aColor);
                            break;
                        case ColorDepth.BitDepth8:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth16:
                            throw new NotImplementedException();
                        default:
                            throw new NotImplementedException();
                    }
                    break;
                case ScreenSize.Size320x200:
                    switch (colorDepth)
                    {
                        case ColorDepth.BitDepth2:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth4:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth8:
                            SetPixel320x200x8(aX, aY, aColor);
                            break;
                        case ColorDepth.BitDepth16:
                            throw new NotImplementedException();
                        default:
                            throw new NotImplementedException();
                    }
                    break;
                default:
                    throw new NotImplementedException();
            }
        }

        public uint GetPixel(uint aX, uint aY)
        {
            if (mode == Mode.Text)
            {
                throw new Exception("Cannot get pixel in text mode");
            }
            return screenSize switch
            {
                ScreenSize.Size640x480 => colorDepth switch
                {
                    ColorDepth.BitDepth2 => throw new NotImplementedException(),
                    ColorDepth.BitDepth4 => GetPixel640x480x4(aX, aY),
                    ColorDepth.BitDepth8 => throw new NotImplementedException(),
                    ColorDepth.BitDepth16 => throw new NotImplementedException(),
                    _ => throw new NotImplementedException(),
                },
                ScreenSize.Size720x480 => colorDepth switch
                {
                    ColorDepth.BitDepth2 => throw new NotImplementedException(),
                    ColorDepth.BitDepth4 => GetPixel720x480x4(aX, aY),
                    ColorDepth.BitDepth8 => throw new NotImplementedException(),
                    ColorDepth.BitDepth16 => throw new NotImplementedException(),
                    _ => throw new NotImplementedException(),
                },
                ScreenSize.Size320x200 => colorDepth switch
                {
                    ColorDepth.BitDepth2 => throw new NotImplementedException(),
                    ColorDepth.BitDepth4 => throw new NotImplementedException(),
                    ColorDepth.BitDepth8 => GetPixel320x200x8(aX, aY),
                    ColorDepth.BitDepth16 => throw new NotImplementedException(),
                    _ => throw new NotImplementedException(),
                },
                _ => throw new NotImplementedException(),
            };
        }

        /// <summary>
        /// Set text size.
        /// </summary>
        /// <param name="aSize">A size to set.</param>
        /// <exception cref="Exception">Thrown when text size invalid / unable to determine memory segment.</exception>
        public void SetTextMode(TextSize aSize)
        {
            debugger.Send("Setting TextMode:" + aSize.ToString());
            mode = Mode.Text;
            switch (aSize)
            {
                case TextSize.Size40x25:
                    WriteVGARegisters(_G_40x25_text);
                    WriteFont(_G_8x16_font, 16);
                    break;
                case TextSize.Size40x50:
                    WriteVGARegisters(_G_40x50_text);
                    WriteFont(_G_8x8_font, 8);
                    break;
                case TextSize.Size80x25:
                    WriteVGARegisters(_G_80x25_text);
                    WriteFont(_G_8x16_font, 16);
                    break;
                case TextSize.Size80x50:
                    WriteVGARegisters(_G_80x50_text);
                    WriteFont(_G_8x8_font, 8);
                    break;
                case TextSize.Size90x30:
                    WriteVGARegisters(_G_90x30_text);
                    WriteFont(_G_8x16_font, 16);
                    break;
                case TextSize.Size90x60:
                    WriteVGARegisters(_G_90x60_text);
                    WriteFont(_G_8x8_font, 8);
                    break;
                default:
                    throw new Exception("Invalid text size.");
            }

            //Clear the memory
            CGATextMemoryBlock.Fill(0);

            int[] colors = new int[]
            {
                0, 168, 43008, 43176, 11010048, 11010216, 11053056, 11053224, 84, 252, 43092, 43260, 11010132, 11010300, 11053140, 11053308, 21504, 21672, 64512, 64680, 11031552, 11031720, 11074560, 11074728, 21588, 21756, 64596, 64764, 11031636, 11031804, 11074644, 11074812, 5505024, 5505192, 5548032, 5548200, 16515072, 16515240, 16558080, 16558248, 5505108, 5505276, 5548116, 5548284, 16515156, 16515324, 16558164, 16558332, 5526528, 5526696, 5569536, 5569704, 16536576, 16536744, 16579584, 16579752, 5526612, 5526780, 5569620, 5569788, 16536660, 16536828, 16579668, 16579836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
            };
            for (int i = 0; i < 256; i++)
            {
                SetPaletteEntry(i, Color.FromArgb(colors[i]));
            }
        }

        /// <summary>
        /// Set graphics mode.
        /// </summary>
        /// <param name="aSize">A screen size.</param>
        /// <param name="aDepth">A color depth.</param>
        /// <exception cref="Exception">Thrown when aDepth not supported for the aSize / unknown screen size.</exception>
        public void SetGraphicsMode(ScreenSize aSize, ColorDepth aDepth)
        {
            debugger.Send("Setting GraphicsMode:" + ((int)aSize).ToString() + " - " + ((int)aDepth).ToString());
            screenSize = aSize;
            colorDepth = aDepth;
            mode = Mode.Graphical;
            switch (aSize)
            {
                case ScreenSize.Size320x200:
                    if (aDepth == ColorDepth.BitDepth8)
                    {
                        debugger.Send("Setting graphic mode to 320x200@256");
                        WriteVGARegisters(_G_320x200x8);

                        PixelWidth = 320;
                        PixelHeight = 200;
                        Colors = 256;
                    }
                    else if (aDepth == ColorDepth.BitDepth4)
                    {
                        debugger.Send("Setting graphic mode to 320x200@16");
                        WriteVGARegisters(_G_320x200x4);

                        PixelWidth = 320;
                        PixelHeight = 200;
                        Colors = 16;
                    }
                    else
                    {
                        throw new Exception($"Unsupported color depth {aDepth} passed for specified screen size");
                    }
                    break;
                case ScreenSize.Size640x480:
                    if (aDepth == ColorDepth.BitDepth2)
                    {
                        debugger.Send("Setting graphic mode to 640x480@4");
                        WriteVGARegisters(_G_640x480x2);

                        PixelWidth = 640;
                        PixelHeight = 480;
                        Colors = 4;
                    }
                    else if (aDepth == ColorDepth.BitDepth4)
                    {
                        debugger.Send("Setting graphic mode to 640x480@16");

                        WriteVGARegisters(_G_640x480x4);

                        PixelWidth = 640;
                        PixelHeight = 480;
                        Colors = 16;
                    }
                    else
                    {
                        throw new Exception($"Unsupported color depth {aDepth} passed for specified screen size");
                    }
                    break;
                case ScreenSize.Size720x480:
                    if (aDepth == ColorDepth.BitDepth4)
                    {
                        debugger.Send("Setting graphic mode to 720x480@16");
                        WriteVGARegisters(_G_720x480x4);

                        PixelWidth = 720;
                        PixelHeight = 480;
                        Colors = 16;
                    }
                    else
                    {
                        throw new Exception($"Unsupported color depth {aDepth} passed for specified screen size");
                    }
                    break;
                default:
                    throw new Exception("Unknown screen size");
            }

            // Clear the cached results as the palette will change
            colorToPalette = new Dictionary<int, uint>();
            // Initialize the palette
            palette[0] = Color.Black;
            switch (aDepth)
            {
                case ColorDepth.BitDepth2:
                    //There are two different color modes available, Assume we are using palette 0
                    palette[1] = Color.Green;
                    palette[2] = Color.Red;
                    palette[3] = Color.Brown;
                    //_Palette[1] = Color.Cyan;
                    //_Palette[2] = Color.Magenta;
                    //_Palette[3] = Color.Gray;
                    break;
                case ColorDepth.BitDepth4:
                    palette[1] = Color.Blue;
                    palette[2] = Color.Green;
                    palette[3] = Color.Cyan;
                    palette[4] = Color.Red;
                    palette[5] = Color.DarkMagenta;
                    palette[6] = Color.Brown;
                    palette[7] = Color.LightGray;
                    palette[8] = Color.DarkGray;
                    palette[9] = Color.LightBlue;
                    palette[10] = Color.LightGreen;
                    palette[11] = Color.LightCyan;
                    palette[12] = Color.Pink;
                    palette[13] = Color.Magenta;
                    palette[14] = Color.Yellow;
                    palette[15] = Color.White;
                    break;
                case ColorDepth.BitDepth8:
                    int[] colors = new int[256] // Credits to https://commons.wikimedia.org/w/index.php?title=User:Psychonaut/ipalette.sh&oldid=8607095
                    {
                        0x000000,0x0000AA,0x00AA00,0x00AAAA,0xAA0000,0xAA00AA,0xAA5500,0xAAAAAA,0x555555,0x5555FF,
                        0x55FF55,0x55FFFF,0xFF5555,0xFF55FF,0xFFFF55,0xFFFFFF,0x000000,0x101010,0x202020,0x353535,
                        0x454545,0x555555,0x656565,0x757575,0x8A8A8A,0x9A9A9A,0xAAAAAA,0xBABABA,0xCACACA,0xDFDFDF,
                        0xEFEFEF,0xFFFFFF,0x0000FF,0x4100FF,0x8200FF,0xBE00FF,0xFF00FF,0xFF00BE,0xFF0082,0xFF0041,
                        0xFF0000,0xFF4100,0xFF8200,0xFFBE00,0xFFFF00,0xBEFF00,0x82FF00,0x41FF00,0x00FF00,0x00FF41,
                        0x00FF82,0x00FFBE,0x00FFFF,0x00BEFF,0x0082FF,0x0041FF,0x8282FF,0x9E82FF,0xBE82FF,0xDF82FF,
                        0xFF82FF,0xFF82DF,0xFF82BE,0xFF829E,0xFF8282,0xFF9E82,0xFFBE82,0xFFDF82,0xFFFF82,0xDFFF82,
                        0xBEFF82,0x9EFF82,0x82FF82,0x82FF9E,0x82FFBE,0x82FFDF,0x82FFFF,0x82DFFF,0x82BEFF,0x829EFF,
                        0xBABAFF,0xCABAFF,0xDFBAFF,0xEFBAFF,0xFFBAFF,0xFFBAEF,0xFFBADF,0xFFBACA,0xFFBABA,0xFFCABA,
                        0xFFDFBA,0xFFEFBA,0xFFFFBA,0xEFFFBA,0xDFFFBA,0xCAFFBA,0xBAFFBA,0xBAFFCA,0xBAFFDF,0xBAFFEF,
                        0xBAFFFF,0xBAEFFF,0xBADFFF,0xBACAFF,0x000071,0x1C0071,0x390071,0x550071,0x710071,0x710055,
                        0x710039,0x71001C,0x710000,0x711C00,0x713900,0x715500,0x717100,0x557100,0x397100,0x1C7100,
                        0x007100,0x00711C,0x007139,0x007155,0x007171,0x005571,0x003971,0x001C71,0x393971,0x453971,
                        0x553971,0x613971,0x713971,0x713961,0x713955,0x713945,0x713939,0x714539,0x715539,0x716139,
                        0x717139,0x617139,0x557139,0x457139,0x397139,0x397145,0x397155,0x397161,0x397171,0x396171,
                        0x395571,0x394571,0x515171,0x595171,0x615171,0x695171,0x715171,0x715169,0x715161,0x715159,
                        0x715151,0x715951,0x716151,0x716951,0x717151,0x697151,0x617151,0x597151,0x517151,0x517159,
                        0x517161,0x517169,0x517171,0x516971,0x516171,0x515971,0x000041,0x100041,0x200041,0x310041,
                        0x410041,0x410031,0x410020,0x410010,0x410000,0x411000,0x412000,0x413100,0x414100,0x314100,
                        0x204100,0x104100,0x004100,0x004110,0x004120,0x004131,0x004141,0x003141,0x002041,0x001041,
                        0x202041,0x282041,0x312041,0x392041,0x412041,0x412039,0x412031,0x412028,0x412020,0x412820,
                        0x413120,0x413920,0x414120,0x394120,0x314120,0x284120,0x204120,0x204128,0x204131,0x204139,
                        0x204141,0x203941,0x203141,0x202841,0x2D2D41,0x312D41,0x352D41,0x3D2D41,0x412D41,0x412D3D,
                        0x412D35,0x412D31,0x412D2D,0x41312D,0x41352D,0x413D2D,0x41412D,0x3D412D,0x35412D,0x31412D,
                        0x2D412D,0x2D4131,0x2D4135,0x2D413D,0x2D4141,0x2D3D41,0x2D3541,0x2D3141,0x000000,0x000000,
                        0x000000,0x000000,0x000000,0x000000,0x000000,0x000000
                    };
                    for (int i = 0; i < 256; i++)
                    {
                        palette[i] = Color.FromArgb(colors[i]);
                    }
                    break;
                case ColorDepth.BitDepth16:
                    break;
                default:
                    break;
            }

            for (int i = 0; i < 2 << ((int)aDepth - 1); i++)
            {
                SetPaletteEntry(i, palette[i]);
            }
        }

        public void SetPixel320x200x8(uint aX, uint aY, uint aC)
        {
            uint where = aY * 320 + aX;
            byte color = (byte)(aC & 0xFF);

            VGAMemoryBlock.Bytes[where] = color;
        }

        public uint GetPixel320x200x8(uint aX, uint aY)
        {
            return VGAMemoryBlock.Bytes[aY * 320 + aX];
        }

        public void SetPixel640x480x4(uint aX, uint aY, uint aC)
        {
            uint offset = (uint)(aX / 8 + PixelWidth / 8 * aY);

            aX = (aX & 7) * 1;

            uint mask = (byte)(0x80 >> (int)aX);
            uint pmask = 1;

            for (byte p = 0; p < 4; p++)
            {
                SetPlane(p);

                if ((pmask & aC) != 0)
                {
                    VGAMemoryBlock.Bytes[offset] = (byte)(VGAMemoryBlock.Bytes[offset] | mask);
                }

                else
                {
                    VGAMemoryBlock.Bytes[offset] = (byte)(VGAMemoryBlock.Bytes[offset] & ~mask);
                }

                pmask <<= 1;
            }
        }

        public uint GetPixel640x480x4(uint aX, uint aY)
        {
            uint offset = (uint)(aX / 8 + PixelWidth / 8 * aY);

            uint pmask = 1;

            uint color = 0;

            for (byte p = 0; p < 4; p++)
            {
                SetPlane(p);

                if (VGAMemoryBlock.Bytes[offset] == 255)
                {
                    color += pmask;
                }

                pmask <<= 1;
            }

            return color;
        }

        public void SetPixel720x480x4(uint aX, uint aY, uint aC)
        {
            uint offset = (uint)(aX / 8 + PixelWidth / 8 * aY);

            aX = (aX & 7) * 1;

            uint mask = (byte)(0x80 >> (int)aX);
            uint pmask = 1;

            for (byte p = 0; p < 4; p++)
            {
                SetPlane(p);

                if ((pmask & aC) != 0)
                {
                    VGAMemoryBlock.Bytes[offset] = (byte)(VGAMemoryBlock.Bytes[offset] | mask);
                }

                else
                {
                    VGAMemoryBlock.Bytes[offset] = (byte)(VGAMemoryBlock.Bytes[offset] & ~mask);
                }

                pmask <<= 1;
            }
        }

        public uint GetPixel720x480x4(uint aX, uint aY)
        {
            uint offset = (uint)(aX / 8 + PixelWidth / 8 * aY);
            int pixelOffset = (int)(7 - aX % 8);
            uint pmask = 1;

            uint color = 0;

            for (byte p = 0; p < 4; p++)
            {
                SetPlane(p);

                var v = VGAMemoryBlock.Bytes[offset];
                if ((v & (1 << pixelOffset)) != 0)
                {
                    color += pmask;
                }

                pmask <<= 1;
            }

            return (uint)palette[color].ToArgb();
        }

        /// <summary>
        /// Draw Filled Rectangle
        /// </summary>
        /// <param name="aX">X Position.</param>
        /// <param name="aY">Y Position.</param>
		/// <param name="aW">Rectangle width</param>
        /// <param name="aH">Rectangle height</param>
		/// <param name="aColor">Rectangle color.</param>
        /// <exception cref="Exception">Thrown when Textmode enabled.</exception>
		public void DrawFilledRectangle(int aX, int aY, int aW, int aH, uint aColor)
        {
            if (mode == Mode.Text)
            {
                throw new Exception("Cannot draw filled rectangle in text mode");
            }
            switch (screenSize)
            {
                case ScreenSize.Size640x480:
                    switch (colorDepth)
                    {
                        case ColorDepth.BitDepth2:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth4:
                            for (uint x = (uint)aX; x < aX + aW; x++)
                            {
                                for (uint y = (uint)aY; y < aY + aH; y++)
                                {
                                    SetPixel640x480x4(x, y, aColor);
                                }
                            }
                            break;
                        case ColorDepth.BitDepth8:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth16:
                            throw new NotImplementedException();
                        default:
                            throw new NotImplementedException();
                    }
                    break;
                case ScreenSize.Size720x480:
                    switch (colorDepth)
                    {
                        case ColorDepth.BitDepth2:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth4:
                            for (uint x = (uint)aX; x < aX + aW; x++)
                            {
                                for (uint y = (uint)aY; y < aY + aH; y++)
                                {
                                    SetPixel720x480x4(x, y, aColor);
                                }
                            }
                            break;
                        case ColorDepth.BitDepth8:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth16:
                            throw new NotImplementedException();
                        default:
                            throw new NotImplementedException();
                    }
                    break;
                case ScreenSize.Size320x200:
                    switch (colorDepth)
                    {
                        case ColorDepth.BitDepth2:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth4:
                            throw new NotImplementedException();
                        case ColorDepth.BitDepth8:
                            for (uint x = (uint)aX; x < aX + aW; x++)
                            {
                                for (uint y = (uint)aY; y < aY + aH; y++)
                                {
                                    SetPixel320x200x8(x, y, aColor);
                                }
                            }
                            break;
                        case ColorDepth.BitDepth16:
                            throw new NotImplementedException();
                        default:
                            throw new NotImplementedException();
                    }
                    break;
                default:
                    throw new NotImplementedException();
            }
        }

        #endregion

        #region Fields

        private readonly Color[] palette = new Color[256];
        internal Debugger debugger = new("VGA");
        private const byte numSeqRegs = 5;
        private const byte numCRTCRegs = 25;
        private const byte numGCRegs = 9;
        private const byte numACRegs = 21;

        ScreenSize screenSize;
        ColorDepth colorDepth;
        Mode mode;

        /// <summary>
        /// Attribute controller index port.
        /// </summary>
        public const int AttributeController_Index = 0x3C0;
        /// <summary>
        /// Attribute controller write port.
        /// </summary>
        public const int AttributeController_Write = 0x3C0;
        /// <summary>
        /// Attribute controller read port.
        /// </summary>
        public const int AttributeController_Read = 0x3C1;
        /// <summary>
        /// Miscellaneous output write port.
        /// </summary>
        public const int MiscellaneousOutput_Write = 0x3C2;
        /// <summary>
        /// Sequencer index port.
        /// </summary>
        public const int Sequencer_Index = 0x3C4;
        /// <summary>
        /// Sequencer data port.
        /// </summary>
        public const int Sequencer_Data = 0x3C5;
        /// <summary>
        /// DAC index read port.
        /// </summary>
        public const int DACIndex_Read = 0x3C7;
        /// <summary>
        /// DAC index write port.
        /// </summary>
        public const int DACIndex_Write = 0x3C8;
        /// <summary>
        /// DAC data port.
        /// </summary>
        public const int DAC_Data = 0x3C9;
        /// <summary>
        /// Graphics controller index port.
        /// </summary>
        public const int GraphicsController_Index = 0x3CE;
        /// <summary>
        /// Graphics controller data port.
        /// </summary>
        public const int GraphicsController_Data = 0x3CF;
        /// <summary>
        /// CRT controller index port.
        /// </summary>
        public const int CRTController_Index = 0x3D4;
        /// <summary>
        /// CRT controller data port.
        /// </summary>
        public const int CRTController_Data = 0x3D5;
        /// <summary>
        /// Instant read port.
        /// </summary>
        public const int Instat_Read = 0x3DA;

        /// <summary>
        /// 128KB at 0xA0000
        /// </summary>
        public readonly MemoryBlock VGAMemoryBlock = new MemoryBlock(0xA0000, 1024 * 128);

        /// <summary>
        /// 32KB at 0xB0000
        /// </summary>
        public readonly MemoryBlock MonochromeTextMemoryBlock = new MemoryBlock(0xB0000, 1024 * 32);

        /// <summary>
        /// 32KB at 0xB8000
        /// </summary>
        public readonly MemoryBlock CGATextMemoryBlock = new MemoryBlock(0xB8000, 1024 * 32);

        #endregion

        #region FONTS

        private static readonly byte[] _G_8x8_font = new byte[]
                                           {
                                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                               0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E,
                                               0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E,
                                               0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00,
                                               0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00,
                                               0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x92, 0x10, 0x7C,
                                               0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C,
                                               0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00,
                                               0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF,
                                               0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00,
                                               0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF,
                                               0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78,
                                               0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18,
                                               0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0,
                                               0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0,
                                               0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99,
                                               0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00,
                                               0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00,
                                               0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18,
                                               0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00,
                                               0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00,
                                               0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0x86, 0xFC,
                                               0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00,
                                               0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF,
                                               0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00,
                                               0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00,
                                               0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00,
                                               0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00,
                                               0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00,
                                               0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00,
                                               0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00,
                                               0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                               0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00,
                                               0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00,
                                               0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00,
                                               0x18, 0x7E, 0xC0, 0x7C, 0x06, 0xFC, 0x18, 0x00,
                                               0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00,
                                               0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00,
                                               0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
                                               0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00,
                                               0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00,
                                               0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00,
                                               0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
                                               0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
                                               0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00,
                                               0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xC6, 0x7C, 0x00,
                                               0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00,
                                               0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00,
                                               0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00,
                                               0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00,
                                               0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00,
                                               0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00,
                                               0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00,
                                               0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00,
                                               0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00,
                                               0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
                                               0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30,
                                               0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00,
                                               0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00,
                                               0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00,
                                               0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00,
                                               0x7C, 0xC6, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00,
                                               0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00,
                                               0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00,
                                               0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00,
                                               0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00,
                                               0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00,
                                               0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00,
                                               0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3A, 0x00,
                                               0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00,
                                               0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
                                               0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00,
                                               0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00,
                                               0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00,
                                               0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00,
                                               0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00,
                                               0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00,
                                               0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00,
                                               0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0x7C, 0x0E, 0x00,
                                               0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00,
                                               0x7C, 0xC6, 0xE0, 0x78, 0x0E, 0xC6, 0x7C, 0x00,
                                               0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
                                               0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00,
                                               0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00,
                                               0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00,
                                               0xC6, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0xC6, 0x00,
                                               0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00,
                                               0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00,
                                               0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00,
                                               0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00,
                                               0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00,
                                               0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
                                               0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
                                               0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00,
                                               0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00,
                                               0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00,
                                               0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
                                               0x38, 0x6C, 0x64, 0xF0, 0x60, 0x60, 0xF0, 0x00,
                                               0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
                                               0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00,
                                               0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
                                               0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78,
                                               0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00,
                                               0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
                                               0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xD6, 0x00,
                                               0x00, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00,
                                               0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
                                               0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0,
                                               0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E,
                                               0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0xF0, 0x00,
                                               0x00, 0x00, 0x7C, 0xC0, 0x70, 0x1C, 0xF8, 0x00,
                                               0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00,
                                               0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
                                               0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00,
                                               0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00,
                                               0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00,
                                               0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
                                               0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00,
                                               0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00,
                                               0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00,
                                               0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00,
                                               0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                               0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00,
                                               0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x0C, 0x06, 0x7C,
                                               0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
                                               0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
                                               0x7E, 0x81, 0x3C, 0x06, 0x3E, 0x66, 0x3B, 0x00,
                                               0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
                                               0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
                                               0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
                                               0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x78, 0x0C, 0x38,
                                               0x7E, 0x81, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
                                               0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
                                               0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
                                               0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
                                               0x7C, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00,
                                               0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
                                               0xC6, 0x10, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
                                               0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00,
                                               0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00,
                                               0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00,
                                               0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00,
                                               0x78, 0x84, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
                                               0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
                                               0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
                                               0x78, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
                                               0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
                                               0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
                                               0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00,
                                               0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
                                               0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18,
                                               0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00,
                                               0xCC, 0xCC, 0x78, 0x30, 0xFC, 0x30, 0xFC, 0x30,
                                               0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC3,
                                               0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70,
                                               0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
                                               0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
                                               0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
                                               0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
                                               0x00, 0xF8, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0x00,
                                               0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00,
                                               0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00,
                                               0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00,
                                               0x18, 0x00, 0x18, 0x18, 0x30, 0x66, 0x3C, 0x00,
                                               0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00,
                                               0xC6, 0xCC, 0xD8, 0x36, 0x6B, 0xC2, 0x84, 0x0F,
                                               0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6D, 0xCF, 0x03,
                                               0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x18, 0x00,
                                               0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00,
                                               0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00,
                                               0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88,
                                               0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA,
                                               0xDB, 0xF6, 0xDB, 0x6F, 0xDB, 0x7E, 0xD7, 0xED,
                                               0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                               0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18,
                                               0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18,
                                               0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36,
                                               0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36,
                                               0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18,
                                               0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36,
                                               0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                               0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36,
                                               0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00,
                                               0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00,
                                               0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18,
                                               0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00,
                                               0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18,
                                               0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18,
                                               0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
                                               0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18,
                                               0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18,
                                               0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36,
                                               0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36,
                                               0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36,
                                               0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36,
                                               0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,
                                               0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36,
                                               0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,
                                               0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18,
                                               0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36,
                                               0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00,
                                               0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18,
                                               0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36,
                                               0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36,
                                               0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18,
                                               0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18,
                                               0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                                               0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
                                               0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
                                               0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
                                               0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00,
                                               0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0,
                                               0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
                                               0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x00,
                                               0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00,
                                               0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00,
                                               0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0,
                                               0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00,
                                               0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC,
                                               0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00,
                                               0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00,
                                               0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00,
                                               0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00,
                                               0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0,
                                               0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00,
                                               0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00,
                                               0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00,
                                               0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00,
                                               0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00,
                                               0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00,
                                               0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18,
                                               0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70,
                                               0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00,
                                               0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00,
                                               0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
                                               0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C,
                                               0x58, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00,
                                               0x70, 0x98, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00,
                                               0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00,
                                               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                                           };

        private static readonly byte[] _G_8x16_font = new byte[]
                                            {

                                                // juptitor
                                                //0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x81, 0xa5, 0x81, 0x81, 0xbd, 0x99, 0x81, 0x81, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xff, 0xdb, 0xff, 0xff, 0xc3, 0xe7, 0xff, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0xfe, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0xe7, 0xe7, 0xe7, 0x99, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00, 0x00,
                                                //0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x99, 0xbd, 0xbd, 0x99, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x1e, 0x0e, 0x1a, 0x32, 0x78, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x33, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x70, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x63, 0x7f, 0x63, 0x63, 0x63, 0x63, 0x67, 0xe7, 0xe6, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0xdb, 0x3c, 0xe7, 0x3c, 0xdb, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0e, 0x1e, 0x3e, 0xfe, 0x3e, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00,
                                                //0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xdb, 0xdb, 0xdb, 0x7b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c,
                                                //0xfe, 0x6c, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7c, 0x7c, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x7c, 0x7c, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x40, 0x00, 0x60, 0x60, 0x00, 0x6c, 0x6c, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x33, 0x33, 0x7f, 0x7f, 0x7f, 0x33, 0x33, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33, 0x22, 0x18, 0x3c, 0x7e, 0x66, 0x66, 0x64, 0x64, 0x60, 0x7c, 0x3e, 0x06, 0x26, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x64, 0x66, 0x06, 0x06, 0x04, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x66, 0x26, 0x18, 0x3c, 0x7e, 0x66, 0x66, 0x64, 0x64, 0x60, 0x7c, 0x7e, 0x60, 0x64, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x60, 0x60, 0x40,
                                                //0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60, 0x30, 0x30, 0x30, 0x18, 0x08, 0x00, 0x40, 0x60, 0x30, 0x30, 0x30, 0x30, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x60, 0x40, 0x00, 0x04, 0x6d, 0x7f, 0x3f, 0x1e, 0x1e, 0x3f, 0x7f, 0x6d, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x04, 0x06, 0x06, 0x06, 0x04, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x60, 0x20, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00,
                                                //0x20, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x40, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x26, 0x26, 0x06, 0x3e, 0x7c, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x26, 0x26, 0x06, 0x3e, 0x7e, 0x06, 0x26, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x00, 0x3c, 0x7e, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7c, 0x3e, 0x06, 0x26, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x64, 0x64, 0x60, 0x7c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                //0x60, 0x60, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x1c, 0x38, 0x70, 0x70, 0x38, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x70, 0x38, 0x1c, 0x1c, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x26, 0x26, 0x06, 0x0e, 0x1c, 0x18, 0x18, 0x10, 0x00, 0x18, 0x18, 0x00, 0x3f, 0x7f, 0x60, 0x63, 0x63, 0x67, 0x60, 0x63, 0x67, 0x66, 0x67, 0x63, 0x60, 0x7f, 0x3f, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x7c, 0x7c, 0x6e, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x64, 0x64, 0x60, 0x60, 0x60, 0x60, 0x64, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x78, 0x7c, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
                                                //0x66, 0x66, 0x6e, 0x7c, 0x78, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x64, 0x64, 0x60, 0x7c, 0x7e, 0x60, 0x64, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x64, 0x64, 0x60, 0x7c, 0x7e, 0x60, 0x60, 0x60, 0x60, 0x60, 0x20, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x64, 0x64, 0x60, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x00, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x26, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x7c, 0x7c, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x20, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x3c, 0x00, 0x3f, 0x7f, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66,
                                                //0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x7c, 0x60, 0x60, 0x60, 0x60, 0x60, 0x20, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x7c, 0x7c, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x64, 0x64, 0x60, 0x7c, 0x3e, 0x06, 0x26, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x10, 0x00, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x18, 0x00, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7f, 0x3f, 0x00, 0x24, 0x66, 0x66, 0x66,
                                                //0x66, 0x66, 0x7e, 0x3c, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3e, 0x06, 0x26, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x06, 0x06, 0x04, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x7e, 0x3c, 0x00, 0x38, 0x7c, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7c, 0x38, 0x00, 0x20, 0x60, 0x60, 0x60, 0x20, 0x30, 0x30, 0x18, 0x18, 0x0c, 0x0c, 0x06, 0x06, 0x06, 0x04, 0x00, 0x38, 0x7c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x7c, 0x38, 0x00, 0x18, 0x3c, 0x7e, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x06, 0x3e, 0x7e, 0x66, 0x7e, 0x3c, 0x00, 0x20,
                                                //0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x66, 0x60, 0x60, 0x66, 0x7e, 0x3c, 0x00, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x66, 0x7e, 0x7c, 0x60, 0x7e, 0x3c, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x64, 0x64, 0x60, 0x7e, 0x7c, 0x60, 0x60, 0x60, 0x60, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3e, 0x00, 0x20, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x00, 0x20, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x40, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x00, 0x20, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x20, 0x60, 0x60, 0x64, 0x64, 0x66, 0x6e, 0x7c, 0x7c, 0x6e, 0x66, 0x66, 0x66, 0x66,
                                                //0x24, 0x00, 0x20, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x66, 0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x60, 0x60, 0x60, 0x60, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x60, 0x7c, 0x3e, 0x06, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x18, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0x66, 0x66,
                                                //0x66, 0x66, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0x7e, 0x3c, 0x3c, 0x7e, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x0e, 0x1c, 0x38, 0x70, 0x7e, 0x3c, 0x00, 0x04, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x38, 0x70, 0x70, 0x38, 0x18, 0x18, 0x18, 0x0c, 0x04, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x40, 0x60, 0x30, 0x30, 0x30, 0x30, 0x38, 0x1c, 0x1c, 0x38, 0x30, 0x30, 0x30, 0x60, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x66, 0x67, 0x23, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
                                                //0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x3c, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x0c, 0x06, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x38, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x60, 0x60, 0x66, 0x3c, 0x0c, 0x06, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0x7c,
                                                //0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x38, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0xfe, 0x66, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x76, 0x36, 0x7e, 0xd8, 0xd8, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x6c, 0xcc, 0xcc, 0xfe, 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38,
                                                //0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x78, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60, 0x60, 0x60, 0xe6, 0xfc, 0x00, 0x00, 0x00, 0x00,
                                                //0x00, 0x00, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xcc, 0xcc, 0xf8, 0xc4, 0xcc, 0xde, 0xcc, 0xcc, 0xcc, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1b, 0x18, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x6c, 0x6c, 0x3e, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                //0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, 0xc0, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc2, 0xc6, 0xcc, 0x18, 0x30, 0x60, 0xce, 0x93, 0x06, 0x0c, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc2, 0xc6, 0xcc, 0x18, 0x30, 0x66, 0xce, 0x9a, 0x3f, 0x06, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x66, 0xcc, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x66, 0x33, 0x66, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44,
                                                //0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                //0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x06, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                //0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36,
                                                //0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                //0x36, 0x36, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0xd8, 0xd8, 0xd8, 0xdc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xc6, 0xfc, 0xc6, 0xc6, 0xfc,
                                                //0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x60, 0x30, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x18, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0x6c, 0x6c, 0x6c, 0x6c, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x30, 0x18, 0x0c, 0x3e, 0x66,
                                                //0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xdb, 0xdb, 0xdb, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 0x7e, 0xcf, 0xdb, 0xf3, 0x7e, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x30, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x60, 0x30, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1b, 0x1b, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                //0x18, 0x18, 0x18, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xec, 0x6c, 0x6c, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x98, 0x30, 0x60, 0xc8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                //0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                                                // lucida console
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x81, 0xa5, 0x81, 0x81, 0xbd, 0x99, 0x81, 0x81, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xff, 0xdb, 0xff, 0xff, 0xc3, 0xe7, 0xff, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0xfe, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0xe7, 0xe7, 0xe7, 0x99, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00, 0x00, 0x00,
                                                0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x99, 0xbd, 0xbd, 0x99, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x1e, 0x0e, 0x1a, 0x32, 0x78, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x33, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x70, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x63, 0x7f, 0x63, 0x63, 0x63, 0x63, 0x67, 0xe7, 0xe6, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0xdb, 0x3c, 0xe7, 0x3c, 0xdb, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0e, 0x1e, 0x3e, 0xfe, 0x3e, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66,
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xdb, 0xdb, 0xdb, 0x7b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, 0xfe, 0x6c, 0x28,
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7c, 0x7c, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x7c, 0x7c, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x12, 0x7f, 0x12, 0x14, 0x24, 0xff, 0x24, 0x48, 0x48, 0x00, 0x00, 0x00, 0x00, 0x08, 0x3e, 0x68, 0x48, 0x48, 0x38, 0x1c, 0x0e, 0x0a, 0x0a, 0x4a, 0x7c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x60, 0x91, 0x92, 0x94, 0x64, 0x08, 0x13, 0x14, 0x24, 0x44, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x24, 0x2c, 0x18, 0x70, 0x88, 0x8c, 0x87, 0x43, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00,
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x06, 0x03, 0x00, 0x00, 0x30, 0x18, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x18, 0x30, 0x00, 0x00, 0x00, 0x08, 0x49, 0x77, 0x18, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x7f, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x06, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x30, 0x20, 0x20, 0x40, 0x00, 0x00, 0x00, 0x1c, 0x22, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x78, 0x08, 0x08, 0x08,
                                                0x08, 0x08, 0x08, 0x08, 0x08, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x42, 0x02, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x02, 0x02, 0x06, 0x1c, 0x02, 0x02, 0x02, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0c, 0x14, 0x24, 0x24, 0x44, 0x84, 0xfe, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x20, 0x20, 0x20, 0x38, 0x04, 0x02, 0x02, 0x02, 0x04, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x20, 0x20, 0x40, 0x5c, 0x62, 0x41, 0x41, 0x41, 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x24, 0x38, 0x46, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x22, 0x41, 0x41, 0x41, 0x23, 0x1d, 0x01, 0x02, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x08, 0x30, 0x30, 0x08, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x30, 0x08, 0x06, 0x06, 0x08, 0x30, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x42, 0x42, 0x02, 0x04, 0x08, 0x10, 0x10, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0x47, 0x89, 0x91, 0x91, 0x93, 0x93, 0xcd, 0x64, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1c, 0x14, 0x14, 0x22, 0x22, 0x7f, 0x41, 0x41, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x42, 0x42, 0x44, 0x78, 0x44, 0x42, 0x42, 0x42, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x60, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x60, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x42, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x7f, 0x40, 0x40, 0x40, 0x40, 0x7e, 0x40, 0x40, 0x40, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x7e, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x60, 0x40, 0x80, 0x80, 0x87, 0x81, 0x41, 0x61, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x44, 0x48, 0x50, 0x60, 0x50, 0x48, 0x44, 0x42, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xaa, 0xaa, 0xaa, 0xb2, 0x92, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x61, 0x51, 0x51, 0x49, 0x49, 0x45, 0x45, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00,
                                                0x00, 0x00, 0x3c, 0x42, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x46, 0x78, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x42, 0x3c, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x44, 0x78, 0x48, 0x44, 0x42, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x40, 0x60, 0x38, 0x04, 0x02, 0x02, 0x42, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x22, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81, 0x41, 0x41, 0x22, 0x22, 0x14, 0x14, 0x1c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x89, 0x49, 0x55, 0x55, 0x55, 0x55, 0x26, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x41, 0x22, 0x14, 0x08, 0x08, 0x14, 0x22, 0x41, 0x80, 0x00, 0x00,
                                                0x00, 0x00, 0x00, 0x00, 0x80, 0x41, 0x22, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x00, 0x00, 0x40, 0x20, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x7c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x14, 0x14, 0x22, 0x22, 0x22, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x02, 0x1e, 0x22, 0x42, 0x46, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x5e, 0x62, 0x41, 0x41, 0x41, 0x41, 0x62, 0x5c,
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0x40, 0x40, 0x40, 0x40, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x1d, 0x23, 0x41, 0x41, 0x41, 0x41, 0x23, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x22, 0x42, 0x7e, 0x40, 0x40, 0x20, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x10, 0x10, 0x7f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x23, 0x41, 0x41, 0x41, 0x41, 0x23, 0x3d, 0x01, 0x02, 0x3c, 0x00, 0x40, 0x40, 0x40, 0x40, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x3c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x78, 0x00, 0x40, 0x40, 0x40, 0x40, 0x42, 0x44, 0x48, 0x70, 0x50, 0x48, 0x44, 0x42, 0x00, 0x00, 0x00, 0x00, 0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
                                                0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x22, 0x41, 0x41, 0x41, 0x41, 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x62, 0x41, 0x41, 0x41, 0x41, 0x62, 0x5c, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x23, 0x41, 0x41, 0x41, 0x41, 0x23, 0x3d, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x40, 0x40, 0x30, 0x0c, 0x02, 0x42, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x7f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x46, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x41, 0x41, 0x22,
                                                0x22, 0x14, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x88, 0x55, 0x55, 0x55, 0x55, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x08, 0x14, 0x22, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x41, 0x41, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x30, 0x08, 0x08, 0x08, 0x08, 0x08, 0x07, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x70, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x88, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0,
                                                0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x0c, 0x06, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x38, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x60, 0x60, 0x66, 0x3c, 0x0c, 0x06, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18,
                                                0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x38, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0xfe, 0x66, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x76, 0x36, 0x7e, 0xd8, 0xd8, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x6c, 0xcc, 0xcc, 0xfe, 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x78, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60, 0x60, 0x60, 0xe6, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                0x00, 0xf8, 0xcc, 0xcc, 0xf8, 0xc4, 0xcc, 0xde, 0xcc, 0xcc, 0xcc, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1b, 0x18, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x6c, 0x6c, 0x3e, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, 0xc0, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc2, 0xc6, 0xcc, 0x18, 0x30, 0x60, 0xce, 0x93, 0x06, 0x0c, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc2, 0xc6, 0xcc, 0x18, 0x30, 0x66, 0xce, 0x9a, 0x3f, 0x06, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x66, 0xcc, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x66, 0x33, 0x66, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa,
                                                0x55, 0xaa, 0x55, 0xaa, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0xf6, 0x36, 0x36,
                                                0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x06, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff,
                                                0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff,
                                                0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                0x18, 0x18, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0xd8, 0xd8, 0xd8, 0xdc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xc6, 0xfc, 0xc6, 0xc6, 0xfc, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x00, 0x00, 0x80, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x60, 0x30, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x18, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0x6c, 0x6c, 0x6c, 0x6c, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x30, 0x18, 0x0c, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xdb, 0xdb, 0xdb, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x00, 0x00, 0x00, 0x03, 0x06, 0x7e, 0xcf, 0xdb, 0xf3, 0x7e, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x30, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x60, 0x30, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1b, 0x1b, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xec, 0x6c, 0x6c, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x98, 0x30, 0x60, 0xc8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00


                                                /* old
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81, 0x81, 0xBD, 0x99, 0x81, 0x81, 0x7E, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7E, 0xFF, 0xDB, 0xFF, 0xFF, 0xC3, 0xE7, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0xE7, 0xE7, 0xE7, 0x99, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x7E, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                                                    0x00, 0x00, 0x1E, 0x0E, 0x1A, 0x32, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x30, 0x30, 0x70, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x67, 0xE7, 0xE6, 0xC0, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x18, 0x18, 0xDB, 0x3C, 0xE7, 0x3C, 0xDB, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFE, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x02, 0x06, 0x0E, 0x1E, 0x3E, 0xFE, 0x3E, 0x1E, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x7C, 0xC6, 0x60, 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6C, 0xFE, 0x6C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7C, 0x7C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x7C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00,
                                                    0x18, 0x18, 0x7C, 0xC6, 0xC2, 0xC0, 0x7C, 0x06, 0x86, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6, 0x0C, 0x18, 0x30, 0x60, 0xC6, 0x86, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xCE, 0xD6, 0xD6, 0xE6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7C, 0xC6, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x3C, 0x06, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xFC, 0x0E, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x38, 0x60, 0xC0, 0xC0, 0xFC, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xFE, 0xC6, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x06, 0x06, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x0C, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xDE, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x66, 0x66, 0xFC, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xDE, 0xC6, 0xC6, 0x66, 0x3A, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xE6, 0x66, 0x6C, 0x6C, 0x78, 0x78, 0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xDE, 0x7C, 0x0C, 0x0E, 0x00, 0x00,
                                                    0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x60, 0x38, 0x0C, 0x06, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x7E, 0x7E, 0x5A, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xC6, 0xC6, 0x6C, 0x6C, 0x38, 0x38, 0x6C, 0x6C, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xFE, 0xC6, 0x86, 0x0C, 0x18, 0x30, 0x60, 0xC2, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
                                                    0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xE0, 0x60, 0x60, 0x78, 0x6C, 0x66, 0x66, 0x66, 0x66, 0xDC, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x3C, 0x6C, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00,
                                                    0x00, 0x00, 0xE0, 0x60, 0x60, 0x6C, 0x76, 0x66, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x06, 0x06, 0x00, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3C, 0x00,
                                                    0x00, 0x00, 0xE0, 0x60, 0x60, 0x66, 0x6C, 0x78, 0x78, 0x6C, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C, 0x1E, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x60, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x10, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x38, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0xF8, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xCC, 0x18, 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x0C, 0x06, 0x7C, 0x00, 0x00,
                                                    0x00, 0x00, 0xCC, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x0C, 0x18, 0x30, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x10, 0x38, 0x6C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xCC, 0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x38, 0x6C, 0x38, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0x60, 0x66, 0x3C, 0x0C, 0x06, 0x3C, 0x00, 0x00, 0x00,
                                                    0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x66, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0xC6, 0xC6, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x38, 0x6C, 0x38, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x18, 0x30, 0x60, 0x00, 0xFE, 0x66, 0x60, 0x7C, 0x60, 0x60, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x76, 0x36, 0x7E, 0xD8, 0xD8, 0x6E, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x3E, 0x6C, 0xCC, 0xCC, 0xFE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCE, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x30, 0x78, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x60, 0x30, 0x18, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0x78, 0x00,
                                                    0x00, 0xC6, 0xC6, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x18, 0x18, 0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60, 0x60, 0x60, 0x60, 0xE6, 0xFC, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0xF8, 0xCC, 0xCC, 0xF8, 0xC4, 0xCC, 0xDE, 0xCC, 0xCC, 0xCC, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x0E, 0x1B, 0x18, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0x70, 0x00, 0x00,
                                                    0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x0C, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x18, 0x30, 0x60, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x18, 0x30, 0x60, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x76, 0xDC, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
                                                    0x76, 0xDC, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, 0xC0, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0xCC, 0x18, 0x30, 0x60, 0xCE, 0x93, 0x06, 0x0C, 0x1F, 0x00, 0x00,
                                                    0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xCE, 0x9A, 0x3F, 0x06, 0x0F, 0x00, 0x00,
                                                    0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44,
                                                    0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA,
                                                    0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                                                    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
                                                    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
                                                    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0xD8, 0xD8, 0xD8, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xC6, 0xFC, 0xC6, 0xC6, 0xFC, 0xC0, 0xC0, 0xC0, 0x00, 0x00,
                                                    0x00, 0x00, 0xFE, 0xC6, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x80, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0xFE, 0xC6, 0x60, 0x30, 0x18, 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x7E, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x6C, 0x6C, 0x6C, 0xEE, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x1E, 0x30, 0x18, 0x0C, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0xDB, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x03, 0x06, 0x7E, 0xCF, 0xDB, 0xF3, 0x7E, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x1C, 0x30, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x30, 0x1C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
                                                    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x6C, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0xD8, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x70, 0x98, 0x30, 0x60, 0xC8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                                                */
                                            };

        #endregion

        #region MODES

        private static readonly byte[] _G_640x480x4 = new byte[]
                                            {
                                                /* MISC */
                                                0xE3,
                                                /* SEQ */
                                                0x03, 0x01, 0x08, 0x00, 0x06,
                                                /* CRTC */
                                                0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0x0B, 0x3E,
                                                0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0xEA, 0x0C, 0xDF, 0x28, 0x00, 0xE7, 0x04, 0xE3,
                                                0xFF,
                                                /* GC */
                                                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x05, 0x0F,
                                                0xFF,
                                                /* AC */
                                                0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
                                                0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
                                                0x01, 0x00, 0x0F, 0x00, 0x00
                                            };

        private static readonly byte[] _G_320x200x8 = new byte[]
                                            {
                                                /* MISC */
                                                0x63,
                                                /* SEQ */
                                                0x03, 0x01, 0x0F, 0x00, 0x0E,
                                                /* CRTC */
                                                0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0xBF, 0x1F,
                                                0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x9C, 0x0E, 0x8F, 0x28, 0x40, 0x96, 0xB9, 0xA3,
                                                0xFF,
                                                /* GC */
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
                                                0xFF,
                                                /* AC */
                                                0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
                                                0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
                                                0x41, 0x00, 0x0F, 0x00, 0x00
                                            };

        private static readonly byte[] _G_80x50_text = new byte[]
                                             {
                                                 /* MISC */
                                                 0x67,
                                                 /* SEQ */
                                                 0x03, 0x00, 0x03, 0x00, 0x02,
                                                 /* CRTC */
                                                 0x5F, 0x4F, 0x50, 0x82, 0x55, 0x81, 0xBF, 0x1F,
                                                 0x00, 0x47, 0x06, 0x07, 0x00, 0x00, 0x01, 0x40,
                                                 0x9C, 0x8E, 0x8F, 0x28, 0x1F, 0x96, 0xB9, 0xA3,
                                                 0xFF,
                                                 /* GC */
                                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0E, 0x00,
                                                 0xFF,
                                                 /* AC */
                                                 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
                                                 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
                                                 0x0C, 0x00, 0x0F, 0x08, 0x00,
                                             };

        private static readonly byte[] _G_720x480x4 = new byte[]
                                            {
                                                /* MISC */
                                                0xE7,
                                                /* SEQ */
                                                0x03, 0x01, 0x08, 0x00, 0x06,
                                                /* CRTC */
                                                0x6B, 0x59, 0x5A, 0x82, 0x60, 0x8D, 0x0B, 0x3E,
                                                0x00, 0x40, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
                                                0xEA, 0x0C, 0xDF, 0x2D, 0x08, 0xE8, 0x05, 0xE3,
                                                0xFF,
                                                /* GC */
                                                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x05, 0x0F,
                                                0xFF,
                                                /* AC */
                                                0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
                                                0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
                                                0x01, 0x00, 0x0F, 0x00, 0x00,
                                            };

        private static readonly byte[] _G_90x30_text = new byte[]
                                             {
                                                 /* MISC */
                                                 0xE7,
                                                 /* SEQ */
                                                 0x03, 0x01, 0x03, 0x00, 0x02,
                                                 /* CRTC */
                                                 0x6B, 0x59, 0x5A, 0x82, 0x60, 0x8D, 0x0B, 0x3E,
                                                 0x00, 0x4F, 0x0D, 0x0E, 0x00, 0x00, 0x00, 0x00,
                                                 0xEA, 0x0C, 0xDF, 0x2D, 0x10, 0xE8, 0x05, 0xA3,
                                                 0xFF,
                                                 /* GC */
                                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0E, 0x00,
                                                 0xFF,
                                                 /* AC */
                                                 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
                                                 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
                                                 0x0C, 0x00, 0x0F, 0x08, 0x00,
                                             };

        private static readonly byte[] _G_90x60_text = new byte[]
                                             {
                                                 /* MISC */
                                                 0xE7,
                                                 /* SEQ */
                                                 0x03, 0x01, 0x03, 0x00, 0x02,
                                                 /* CRTC */
                                                 0x6B, 0x59, 0x5A, 0x82, 0x60, 0x8D, 0x0B, 0x3E,
                                                 0x00, 0x47, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
                                                 0xEA, 0x0C, 0xDF, 0x2D, 0x08, 0xE8, 0x05, 0xA3,
                                                 0xFF,
                                                 /* GC */
                                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0E, 0x00,
                                                 0xFF,
                                                 /* AC */
                                                 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
                                                 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
                                                 0x0C, 0x00, 0x0F, 0x08, 0x00,
                                             };

        private static readonly byte[] _G_40x25_text = new byte[]
                                             {
                                                 /* MISC */
                                                 0x67,
                                                 /* SEQ */
                                                 0x03, 0x08, 0x03, 0x00, 0x02,
                                                 /* CRTC */
                                                 0x2D, 0x27, 0x28, 0x90, 0x2B, 0xA0, 0xBF, 0x1F,
                                                 0x00, 0x4F, 0x0D, 0x0E, 0x00, 0x00, 0x00, 0xA0,
                                                 0x9C, 0x8E, 0x8F, 0x14, 0x1F, 0x96, 0xB9, 0xA3,
                                                 0xFF,
                                                 /* GC */
                                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0E, 0x00,
                                                 0xFF,
                                                 /* AC */
                                                 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
                                                 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
                                                 0x0C, 0x00, 0x0F, 0x08, 0x00,
                                             };

        private static readonly byte[] _G_40x50_text = new byte[]
                                             {
                                                 /* MISC */
                                                 0x67,
                                                 /* SEQ */
                                                 0x03, 0x08, 0x03, 0x00, 0x02,
                                                 /* CRTC */
                                                 0x2D, 0x27, 0x28, 0x90, 0x2B, 0xA0, 0xBF, 0x1F,
                                                 0x00, 0x47, 0x06, 0x07, 0x00, 0x00, 0x04, 0x60,
                                                 0x9C, 0x8E, 0x8F, 0x14, 0x1F, 0x96, 0xB9, 0xA3,
                                                 0xFF,
                                                 /* GC */
                                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0E, 0x00,
                                                 0xFF,
                                                 /* AC */
                                                 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
                                                 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
                                                 0x0C, 0x00, 0x0F, 0x08, 0x00,
                                             };

        private static readonly byte[] _G_80x25_text = new byte[]
                                             {
                                                 /* MISC */
                                                 0x67,
                                                 /* SEQ */
                                                 0x03, 0x00, 0x03, 0x00, 0x02,
                                                 /* CRTC */
                                                 0x5F, 0x4F, 0x50, 0x82, 0x55, 0x81, 0xBF, 0x1F,
                                                 0x00, 0x4F, 0x0D, 0x0E, 0x00, 0x00, 0x00, 0x50,
                                                 0x9C, 0x0E, 0x8F, 0x28, 0x1F, 0x96, 0xB9, 0xA3,
                                                 0xFF,
                                                 /* GC */
                                                 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0E, 0x00,
                                                 0xFF,
                                                 /* AC */
                                                 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
                                                 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
                                                 0x0C, 0x00, 0x0F, 0x08, 0x00
                                             };

        private static readonly byte[] _G_320x200x4 = new byte[]
                                            {
                                                /* MISC */
                                                0x63,
                                                /* SEQ */
                                                0x03, 0x09, 0x03, 0x00, 0x02,
                                                /* CRTC */
                                                0x2D, 0x27, 0x28, 0x90, 0x2B, 0x80, 0xBF, 0x1F,
                                                0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x9C, 0x0E, 0x8F, 0x14, 0x00, 0x96, 0xB9, 0xA3,
                                                0xFF,
                                                /* GC */
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x02, 0x00,
                                                0xFF,
                                                /* AC */
                                                0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
                                                0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
                                                0x01, 0x00, 0x03, 0x00, 0x00
                                            };

        private static readonly byte[] _G_640x480x2 = new byte[]
                                            {
                                                /* MISC */
                                                0xE3,
                                                /* SEQ */
                                                0x03, 0x01, 0x0F, 0x00, 0x06,
                                                /* CRTC */
                                                0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0x0B, 0x3E,
                                                0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0xEA, 0x0C, 0xDF, 0x28, 0x00, 0xE7, 0x04, 0xE3,
                                                0xFF,
                                                /* GC */
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0F,
                                                0xFF,
                                                /* AC */
                                                0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
                                                0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
                                                0x01, 0x00, 0x0F, 0x00, 0x00
                                            };

        #endregion
    }
}